package domein;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

public class AgendaAfspraak {
	private Calendar startDatum;
	private Calendar eindTijd;
	private String omschrijving;

	public AgendaAfspraak(Calendar aDatum, Calendar eindTijd, String anOmschrijving)
			throws IllegalArgumentException {
		setStartDatum(aDatum);
		setOmschrijving(anOmschrijving);
		setEindTijd(eindTijd);
	}

	public void setStartDatum(Calendar aDat) throws IllegalArgumentException {
		if (aDat == null){
			throw new IllegalArgumentException("Er moet een datum ingevuld worden");	
		}else if(aDat.before(Calendar.getInstance())) {
			throw new IllegalArgumentException("Datum kan alleen in de toekomst zijn");
		}
		startDatum = aDat;
	}
	
	public void setStartDatum(String aDat)
			throws ParseException {
		Date strdate = null;
		SimpleDateFormat sdf = new SimpleDateFormat("dd-MM-yyyy");
		
		strdate = sdf.parse(aDat);
		startDatum = Calendar.getInstance();
		startDatum.setTime(strdate);
	}
	
	public void setEindTijd(Calendar aTijd){
		eindTijd = aTijd;
	}

	public void setOmschrijving(String aOm) throws IllegalArgumentException {
		if (aOm == null || aOm.isEmpty()) {
			throw new IllegalArgumentException(
					"Er moet een omschrijving gegeven worden");
		}
		omschrijving = aOm;
	}
	
	public Calendar getStartDatum() {
		return startDatum;
	}

	public String getStartDatumske() {
		SimpleDateFormat sdf = new SimpleDateFormat("dd-MM-yyyy");
		sdf.setLenient(false);
		return sdf.format(startDatum.getTime());
	}
	
	public Calendar getEindTijd() {
		return eindTijd;
	}

	public String getOmschrijving() {
		return omschrijving;
	}
}
